#include <stdio.h>
#include "menu.h"
#include "gestion_capteurs.h"
#include <string.h>
#include <stdlib.h>


void afficher_menu()
{
printf("\n *** Gestion capteurs ***\n");
printf("\n1- Ajouter capteurs\n");
printf("2- Afficher capteurs\n");
printf("3- Supprimer capteurs\n");
printf("4- Initialiser capteurs\n");
printf("5- Définir chemin de référence\n");
printf("0- Retour\n");
}

int choix_menu()
{
int choix;
scanf ("%d",&choix);
return (choix);
}





capteur saisie_capteur() 
{
capteur c;
printf("Saisir la référence du capteur \n");
scanf("%s",c.cap); 
printf("Saisir la désignation du capteur \n");
scanf("%s",c.designation);
return c;
}

  
void ajouter_capteur(char ges[], capteur c)
{
c=saisie_capteur () ;
FILE *f;
  f=fopen(ges,"ab");
  if (f==NULL)
{
printf("\n Impossible d'ouvrir le fichier %s",ges);
 } 
else {
  fwrite(&c,sizeof(capteur),1,f);
}
  fclose(f);
}




void afficher_capteur(char ges[],capteur c)
{
	FILE *f;
    	f=fopen(ges,"rb");
if(f==NULL){
printf("\n Impossible d'ouvrir le fichier %s",ges);
  } else{ 
  while(fread(&c,sizeof(capteur),1,f)!=0)
	printf("\n %s %s \n",c.cap,c.designation);                        
} 
fclose(f);
}



void supprimer_capteur( char ges[])
{
char tmp[]="tmp.txt";
FILE *f ;
FILE *t ;
capteur c;
char nom[50];
printf("\n Donner le  nom du capteur que vous voulez retirer de la liste:\n");
scanf("%s",nom);
f=fopen(ges,"rb") ;
t=fopen(tmp,"wb") ;
if (f!= NULL && t!=NULL)
{
while(fread(&c,sizeof(capteur),1,f)!=0)
{
if( strcmp(nom,c.cap)!=0)
{ fwrite(&c,sizeof(capteur),1,t) ;
}
}
}
printf("Le capteur est supprimé\n");
fclose(f) ;
fclose(t) ;
f=fopen(ges,"wb") ;
t=fopen(tmp,"rb") ;
while(fread (&c,sizeof(capteur),1,t)!=0)
{fwrite(&c,sizeof(capteur),1,f) ;}
fclose(f) ;
fclose(t) ;
}

void init_capteur(char ges[])
{
	
 	FILE *f;
 	f=fopen(ges,"wb");
 	fclose(f);
}


void definir_chemin(char ref[])
{ 
char ch[78];  
FILE *f;
  f=fopen(ref,"w");
  if (f==NULL)
{
printf("\n Impossible d'ouvrir le fichier %s",ref);
 } 
else {

printf("donner le chemin de référence \n");
while(getchar()=='\n');
gets(ch);
fprintf(f,"%s",ch);

}
 printf("chemin de référence défini \n");
fclose(f);
}



  


void gestion_capteurs(char ref[])
{
int choix;
capteur c;
char ges[]="Liste_capteurs.txt" ;

char ch ;

do {
afficher_menu();
choix=choix_menu();

switch (choix) {
	case 1: ajouter_capteur(ges,c) ;
	break;
	case 2: afficher_capteur(ges,c) ;
 	break;

	case 3: supprimer_capteur(ges);
	break;
	case 4: init_capteur(ges) ;
	break;
	case 5: definir_chemin(ref);
	break;
	default:printf("Sortie_Gestion_capteurs\n") ;
}
} while (choix!=0) ;
}

